//
//  GNTabBar.swift
//  SinaWeChat
//
//  Created by mac on 15/12/5.
//  Copyright © 2015年 mac. All rights reserved.
//

import UIKit

class GNTabBar: UITabBar {
    
    //定义闭包的变量
    var composeButtonClosure:(()->())?

    override init(frame: CGRect) {
        
        super.init(frame: frame)
        
        setupUI()
    }
    
    //必须要重写这个方法
    // 如果当前 View 从 xib / sb 里面加载出来的话,就会调用这个方法
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    
    //设置UI内容
    func setupUI()
    {
        
        //添加撰写按钮
        
        addSubview(composeButton)
        
    }
    
    //MARK:-重写layoutSubViews
    
    override func layoutSubviews() {
        
        super.layoutSubviews()
        
        //调整撰写按钮的位置
        // 在开发过程中,如果子控件要居中,不要使用父控件的center
        
        composeButton.center = CGPoint(x : frame.width*0.5, y : frame.height*0.5)
        
        //UITabBarButton 的宽度
        let childW = frame.width/5
        
        var index = 0
        
        for childView in subviews{
            
            // UITabBarButton 是一个私有的控件,不能直接获取 class
            if childView .isKindOfClass(NSClassFromString("UITabBarButton")!){
                
                //设置宽度
                //计算x值
                
                let x = CGFloat(index) * childW
                
                childView.frame = CGRect(x : x, y: 0, width: childW, height: frame.height)
                
                //index 增加
                index++
                
                //如果当前是第二个按钮就再加一
                
                if index == 2{
                    
                    index++
                }
            
            }
            
            
            
        }
        
    }
    
    //MARK:-监听事件
    @objc private func composeButtonClick(){
        
        print("撰写按钮被点击")
        
        //执行闭包
        
        composeButtonClosure?()
        
    }
    
    
    //撰写按钮
    //MARK:- 撰写按钮
    lazy var composeButton:UIButton = {
        
        let button = UIButton()
        
        //添加点击事件
        button.addTarget(self, action: "composeButtonClick", forControlEvents: .TouchUpInside)
        
        //添加按钮的背景图片
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
        //设置button的大小
        button.sizeToFit()
        
        return button
        
        
        
    }()

}
